The present invention generally relates to data processing and, in particular, to systems and methods for rendering image-based data via a display screen such that each word of a row of text is simultaneously visible.
It is often desirable for a user to be able to communicate information from various locations. Therefore, portable communications devices have been developed that allow a user to transmit and receive information when the user is at a plurality of possible locations. For example, a user traveling to different cities or other locations can utilize a portable communications device to establish communication with remote communications devices and/or networks.
Most portable communications devices include a data interface that interfaces data between the portable communications device and outside systems or devices. As an example, the data interface can be connected to and receive data from a telephone line. The data received by the data interface can then be displayed to the user via a display screen associated with the portable communications device.
To facilitate transportation, most display screens associated with portable communications devices are relatively small. In fact, many of these display screens are not large enough to display a complete line of text that has been transmitted to the communications device. Therefore, when the text is defined by ASCII code words, most portable communications devices are designed to insert a line break after the last word in the line that can be displayed on a single row of the display screen. Then, the remainder of the words in the line are displayed on the next row of the display screen. Therefore, a single line of text is displayed on multiple row(s) of the display screen, and the user is able to view each word of the line simultaneously. This process of automatically breaking a line of text to enable simultaneous viewing of each word in the line is commonly referred to as xe2x80x9cword wrapping.xe2x80x9d
However, the data transmitted to the portable communications device is not always defined by ASCII code words. For example, in many situations, image-based data (such as facsimile data, for example) is transmitted to the portable communications device. Image-based data does not include ASCII code words but instead includes data strings that are associated with each pixel of the image defined by the image-based data. The data strings define the color or shade of the pixels of the image.
Since the text of image-based data is not defined by ASCII code words, it is difficult for most portable communications devices to identify the words of the text. Therefore, most portable communications devices render image-based data without attempting to divide or break lines of text that do not fit on a single row of the display screen. Furthermore, since the display screen is not usually large enough to display a complete line of text, most of the lines of text are not completely displayed to the user at the same time. Consequently, to read a complete line of text, the user is usually required to read a portion of the text that is currently displayed and then to pan the display of the data so that the remainder of the text is visible. As a result, a user is usually required to pan the displayed image back and forth while reading from the display screen.
It is possible to convert the image-based data received by the portable communications device into ASCII code words so that the lines of text may be divided and simultaneously displayed to the user. In this regard, an optical character recognition (OCR) device may be used to scan the lines of text and to define ASCII code words through well known techniques. However, OCR techniques are not always accurate, and the conversion of the image-based data into ASCII code words may increase the number of errors in the data. Furthermore, utilization of OCR devices in portable communications devices usually increases the size and the power of the portable communications devices to undesirable levels. Therefore, it is not always desirable to convert image-based data into ASCII code words before displaying the data to the user in portable communications devices.
Thus, a heretofore unaddressed need exists for systems and methods of efficiently rendering image-based data via a portable communications device such that each word of a line of text is simultaneously visible.
A representative system includes a data interface, a data manager, and a rendering device. The data interface receives a remotely-generated data stream. The data manager translates the remotely-generated data stream into a plurality of word blocks, wherein the data manager determines for each word block of interest whether an active line can accommodate an entire word block of interest prior to registering the word block with the active line and wherein the data manager increments the active line in response to a determination that the word block of interest would not be accommodated on the active line. The display device then renders the plurality of word blocks associated with each line.
A representative method for rendering image-based data includes the following steps: receiving a remotely-generated data stream, the data stream responsive to an image of a source document, the source document comprising text characters; identifying a plurality of word blocks by analyzing gaps between the text characters defined by the data stream; registering at least one of the plurality of word blocks with a row suitable for rendering on a display device; selecting a subsequent word block from the plurality of identified word blocks; determining whether a rendered image of the entire subsequent word block can be rendered on the row; and if so, registering the entire subsequent word block on the row.